home *** CD-ROM | disk | FTP | other *** search
/ ftp.cs.arizona.edu / ftp.cs.arizona.edu.tar / ftp.cs.arizona.edu / icon / newsgrp / group02b.txt / 000068_icon-group-sender_Tue Oct 8 07:39:26 2002.msg < prev    next >
Internet Message Format  |  2003-01-02  |  6KB

  1. Return-Path: <icon-group-sender>
  2. Received: (from root@localhost)
  3.     by baskerville.CS.Arizona.EDU (8.11.1/8.11.1) id g98EdAA28643
  4.     for icon-group-addresses; Tue, 8 Oct 2002 07:39:10 -0700 (MST)
  5. Message-Id: <200210081439.g98EdAA28643@baskerville.CS.Arizona.EDU>
  6. Date: Mon, 7 Oct 2002 16:41:19 -0700 (PDT)
  7. From: Mark Kot <kot@amath.washington.edu>
  8. Subject: Re: icon
  9. To: trutkin@physics.clarku.edu
  10. Cc: icon-group@cs.arizona.edu
  11. Errors-To: icon-group-errors@cs.arizona.edu
  12. Status: RO
  13.  
  14. >Date: Mon, 7 Oct 2002 18:10:14 -0400 (EDT)
  15. >From: Taybin Rutkin <trutkin@physics.clarku.edu>
  16. >X-Sender: trutkin@planck.clarku.edu
  17. >To: Mark Kot <kot@amath.washington.edu>
  18. >cc: icon-group@CS.Arizona.EDU
  19. >Subject: Re: icon
  20. >MIME-Version: 1.0
  21. >
  22. >On Mon, 7 Oct 2002, Mark Kot wrote:
  23. >
  24. >> iconcise is actually based on a handbook of common
  25. >> verbose phrases that also recommends substitutions.
  26. >> I haven't posted the program for the simple reason
  27. >> that I don't want to cross over from ``fair use''
  28. >> to copyright infringement (since the program, in
  29. >> effect, implements the book).
  30. >
  31. >And what about izipf?  Is that this program but with USENET connectivity
  32. >and a history mechanism of some sort?
  33. >
  34. >Taybin
  35. >--
  36. >http://www.piratesvsninjas.com
  37. >
  38.  
  39. No, izipf is rather different.  It's actually a whole suite
  40. of programs.  (My colleagues and I were trying to work out
  41. the community ecology of newsgroups.)
  42.  
  43. The original program was irank.  The program takes archived
  44. newsgroups (it also works on email spools), looks for the
  45. ``From:'' line and finds the ID of the sender.  It then
  46. tallies the number posts from each poster and ranks the
  47. posters.  We use this program to generate frequency-rank
  48. or rank abundance distributions.
  49.  
  50. Here's the code (are we allowed to post code ?):
  51.  
  52. #########################################################
  53. #####   PROGRAM:   irank.icn
  54. #####   CREATED:   01/05/2001
  55. #####   REVISED:   01/05/2001
  56. #####   PURPOSE:   TALLY AND RANK SOURCES
  57. #####           TRY TAG FIRST 
  58. #####           IF TAG FAILS USE FULL FROM
  59. #########################################################
  60.  
  61. link strings
  62.  
  63. procedure main(clargs)
  64.  
  65.     infile := open(clargs[1]) | &input
  66.  
  67.         sources := table(0)
  68.  
  69.         while line := read(infile) do line ?
  70.         {
  71.             if="From: " then
  72.             {
  73.                     address := map(tab(0))
  74.  
  75.             tags := 0
  76.  
  77.             every word := words(address, ' <>\t\r\n\v\f') do word ?
  78.             {
  79.                 if name := tab(find("@")) then
  80.                 {
  81.                     tags +:= 1
  82.                     sources[name] +:= 1
  83.                     break
  84.                 }
  85.             }
  86.  
  87.             if tags = 0 then sources[address] +:= 1
  88.             }
  89.         }
  90.  
  91.         ranked := sort(sources, 2)
  92.  
  93.         every i := 1 to *ranked do write(i, "\t", ranked[*ranked-i+1][2])
  94.  
  95. end
  96.  
  97.  
  98.  
  99. Amazingly, the rank abundance distribution for most newsgroups follows
  100. Zipf's law.
  101.  
  102.     As I said, there is a whole suite of programs (most of which may
  103. not mean much):
  104.  
  105. aclass          aclass (1)      - izipf program to generate an abundance class distribution
  106. bs_a            bs_a (1)        - izipf program to fit a broken-stick series
  107. bs_ra           bs_ra (1)       - izipf program to generate broken-stick rank-abundance distribution
  108. bs_s            bs_s (1)        - izipf program to generate broken-stick spectrum
  109. cofdet          cofdet (1)      - izipf program to run regressions on many newsgroups
  110. correlate       correlate (1)   - izipf program for predicted and actual slopes for many newsgroups
  111. counts          counts (1)      - izipf program to determine newsgroup parameters from irank output
  112. eslope          eslope (1)      - izipf program for following slopes in a simulation
  113. getdata         getdata (1)     - izipf program to fetch newsgroup headers from archive
  114. ichi            ichi (1)        - izipf program for goodness 0f fit to Simon's Yule distribution
  115. iksimon         iksimon (1)     - izipf KS test for fit to Simon model
  116. iksimons        iksimons (1)    - izipf KS test for fit to Simon model
  117. iksmspectra     iksmspectra (1) - izipf KS test of many real and simulated spectra for many newsgroups
  118. ikspectra       ikspectra (1)   - izipf KS test of one real and simulated spectrum for many newsgroups
  119. ikspectrum      ikspectrum (1)  - izipf KS test of real and simulated spectra
  120. inamerank       inamerank (1)   - izipf program to rank, tally, and name posters
  121. inew            inew (1)        - izipf program to determine posters as a function of posts
  122. inumber         inumber (1)     - izipf program to assign a poster number to each post
  123. irank           irank (1)       - izipf program to produce rank-frequency distribution
  124. itagless        itagless (1)    - izipf program to find tagless headers
  125. logs_a          logs_a (1)      - izipf program to fit a logarithmics series
  126. logs_ra         logs_ra (1)     - izipf program to generate a logarithmic series rank-abundance distribution
  127. logs_s          logs_s (1)      - izipf program to generate logarithmic spectrum
  128. param           param (1)       - izipf program to determine newsgroup parameters
  129. params          params (1)      - izipf program to determine parameters for many newsgroups
  130. simon_says      simon_says (1)  - izipf program to generate Simon's Yule distribution
  131. simulate        simulate (1)    - izipf program to plot real and simulated rank-abundance distributions for all newsgroups
  132. spectrum        spectrum (1)    - izipf program to generate frequency spectrum
  133. sw              sw (1)          - izipf program to compute Shannon-Weaver diversity index from irank input
  134. tagnumbers      tagnumbers (1)  - izipf program to count and classify tags for many newsgroups
  135. theory          theory (1)      - izipf program to predict slopes of Gunther process
  136.  
  137. That's probably more than you wanted to know.
  138.  
  139.                                 Mark
  140.  
  141.